Protocols are used by computers to communicate across a network. Protocols control the connection, communication, and data transfer between two network endpoints. There are two basic types of protocols—connection-oriented protocols and connectionless protocols.
Connection-oriented protocols establish a communication session between two network endpoints and then deliver a stream of data in the same order that it was sent from one endpoint to the other. Connection-oriented protocols are usually reliable, meaning that their ability to deliver data is more reliable. This reliability usually results from the protocol providing notifications to the sender regarding whether or not the data was delivered, and the sender resending lost information. Reliable protocols typically incur more overhead than unreliable protocols, and as a result, are slower and less scalable. Examples of reliable, connection-oriented protocols include Transmission Control Protocol (TCP), Hypertext Transfer Protocol (HTTP), and Session Initiation Protocol (SIP).
Connectionless protocols deliver data between two network endpoints without first establishing a communication session between the two. One of the devices transmits data to the other without knowing if the receiving device is available and ready to receive the data. Thus, connectionless protocols are usually unreliable and, because they incur less overhead than reliable protocols, are usually faster and more scalable. Examples of unreliable, connectionless protocols include User Datagram Protocol (UDP).
Advances in telecommunications and cell phone technology allow for the creation of many new types of applications. One class of applications, referred to as location-based applications, use the knowledge of the historical or real-time positions of a mobile device to provide a service. Global Positioning System (GPS)-enabled cell phones are currently one of the more popular devices that provide location-based services (LBS) to end users.
These devices continuously become more advanced, featuring functionality that was state-of-the-art on desktop computers just a few years ago. Not only can these cell phones tell where a user is, but they can deliver on-demand text, sound, and video to the user. By combining the knowledge of the individual's physical location with these multimedia services, many different types of location-based services can be realized. Some LBS include location-based messaging for emergency alerts such as traffic accidents or weather notices, location-based marketing of products or services to consumers, and real-time navigation instructions while driving or using public transportation.
Existing location-aware applications use architectures that combine application and location data into one protocol, usually a reliable protocol such as TCP or HTTP. However, because location updates can be as frequent as once per second, significant resources (e.g. memory, communication bandwidth, CPU cycles, energy) are consumed on both the mobile device and the server when transferring this much data. Additionally, location data may be retransmitted when lost or corrupted because of the handshake and acknowledgements required by reliable protocols. This is normally not useful, because, in real-time applications, timeliness is more important than receiving all location data transmissions. Therefore, it is preferable to use an unreliable protocol such as UDP in order to provide the timely transmission of real-time location data from one mobile device in a location-aware application system to another and/or to a central server.